1. Field of the Invention
The present invention relates to a graphics processing technique.
2. Description of the Related Art
High-quality graphics has been widely used in personal computers and game consoles. For instance, an application such as a game or simulation using high-quality three-dimensional computer graphics is executed, or an image content in which live action and computer graphics are combined is reproduced.
In general, graphics processing is performed in cooperation of a CPU and a Graphics Processing Unit (GPU). The CPU is a general-purpose processor that performs common operations, whereas the GPU is a processor dedicated to performing advanced graphics operations. The CPU performs geometry operations such as a projection transformation based on the three-dimensional model of an object, whereas the GPU performs a rendering process after receiving vertex data from the CPU. The GPU is composed of specialized hardware such as a rasterizer or a pixel shader, and executes the graphics processing by pipelining. Some of the latest GPUs, known as a program shader, have programmable shader functions.
A graphics library is usually provided to support the shader programming. The currently available graphics libraries hide the hardware-specific functions of the GPU, and provide library functions that are not dependent on a particular GPU. Thus, the boundary between hardware and software appears obscure to an application. For this reason, the existing graphics libraries are not suitable for the finely-tuned control, for example, a case where a programmer likes to control the graphics processing at the hardware level of a specific GPU.
In the system configuration where the CPU is involved in graphics processing, if the CPU spends time performing the common processing or spends time in the synchronous processing with the GPU, the CPU will become the bottleneck and the performance of whole system will be degraded.